package easy;

import java.util.ArrayList;
import java.util.List;

/**
 * @author admin
 * 500. 键盘行
 * 解题思路：两层for循环，第一次遍历单词，第二层遍历字符，逐个比较，用一个list来保存符合要求的单词。
 * 当一个单词的第一个字母在某一行，但后边出现字母不在此行，则说明此单词不符合条件，不添加到list中。
 * 最后将list中的单词赋给新数组并返回。
 */
public class LeeCode500 {

    public String[] findWords(String[] words) {

        List<String> list = new ArrayList<>();
        String s1 = "qwertyuiopQWERTYUIOP";
        String s2 = "asdfghjklASDFGHJKL";
        String s3 = "zxcvbnmZXCVBNM";
//        第一个单词
        for (int i = 0; i < words.length; i++) {
//            第一个单词的第几个字母
            for (int j = 0; j < words[i].length(); j++){
                if (s1.contains(String.valueOf(words[i].charAt(0))) && !s1.contains(String.valueOf(words[i].charAt(j)))) {
                    break;
                }
                if (s2.contains(String.valueOf(words[i].charAt(0))) && !s2.contains(String.valueOf(words[i].charAt(j)))) {
                    break;
                }
                if (s3.contains(String.valueOf(words[i].charAt(0))) && !s3.contains(String.valueOf(words[i].charAt(j)))) {
                    break;
                }
                if (j == words[i].length() - 1){
                    list.add(words[i]);
                }
            }
        }

        String[] res = new String[list.size()];

        for (int i = 0; i < list.size(); i++) {
            res[i] = list.get(i);
        }

        System.out.println(res.length);

        return res;
    }

    public static void main(String[] args) {

        String[] res = new String[]{"Hello","Alaska","Dad","Peace"};
        System.out.println(new LeeCode500().findWords(res));
    }
}
